# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

with Files('**/Makefile.in'):
    BUG_COMPONENT = ('Core', 'Build Config')
    FINAL = True

FILES_PER_UNIFIED_FILE = 1

CONFIGURE_SUBST_FILES += [
    'config/autoconf.mk',
    'config/emptyvars.mk',
]

if CONFIG['ENABLE_CLANG_PLUGIN']:
    DIRS += ['build/clang-plugin']

DIRS += [
    'config',
    'python',
    'taskcluster',
]

if not CONFIG['MOZ_DISABLE_PLATFORM']:
    if not CONFIG['JS_STANDALONE']:
        CONFIGURE_SUBST_FILES += [
            'tools/update-packaging/Makefile',
        ]
        CONFIGURE_DEFINE_FILES += [
            'mozilla-config.h',
        ]
        EXPORTS += [
            '!buildid.h',
            '!mozilla-config.h',
            '!source-repo.h',
        ]

        GENERATED_FILES += [
            'buildid.h',
            'source-repo.h',
        ]

        GENERATED_FILES['buildid.h'].script = 'build/variables.py:buildid_header'
        GENERATED_FILES['source-repo.h'].script = 'build/variables.py:source_repo_header'

        DIRS += [
            'build',
            'probes',
        ]

    DIRS += [
        'config/external/fdlibm',
        'config/external/nspr',
        'config/external/zlib',
        'memory',
        'mfbt',
        'mozglue',
    ]

    if not CONFIG['JS_STANDALONE']:
        DIRS += ['xpcom/xpidl']

    if CONFIG['USE_ICU']:
        DIRS += ['config/external/icu']

    if CONFIG['COMPILE_ENVIRONMENT']:

        if not CONFIG['JS_STANDALONE']:
            # Hopefully build sqlite before nss
            DIRS += ['db/sqlite3/src']

            DIRS += [
                'config/external',
                'config/external/nss',
            ]

        if CONFIG['BUILD_CTYPES']:
            DIRS += ['config/external/ffi']

        DIRS += ['js/src']
    else:
        TEST_DIRS += ['js/src/tests']

if not CONFIG['JS_STANDALONE'] and CONFIG['MOZ_BUILD_APP']:
    # Bring in the configuration for the configured application.
    include('/' + CONFIG['MOZ_BUILD_APP'] + '/app.mozbuild')

include('build/templates.mozbuild')
